package com.rentong.wx.cust.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 
 * 
 * @author zhangle
 * @email 459343178@qq.com
 * @date 2024-12-24 14:42:32
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "cust_service_order")
public class CustServiceOrderEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 订单号
	 */
	@Id
	private Long serviceOrderId;
	/**
	 * 单据号，前缀用字母，用来区分是什么类型的订单的（例如：SHDD202412181329020）
	 */
	private String danjuNo;
	/**
	 * 订单类型；1：到店代厨·商家报价（DDSJBJ）；2：到店代厨·师傅报价（DDSFBJ）；3：到店代厨·单点师傅（DDDDSF）；4：到家私厨·项目预约（DJXMYY）；5：到家私厨·单点师傅（DJDDSF）
	 */
	private Integer orderType;
	/**
	 * 下单人的cust_id
	 */
	private Long custId;
	/**
	 * 支付人的cust_id（主要用于代付，打开代付页面的时候，更新这个字段）
	 */
	private Long payCustId;
	/**
	 * 服务的id
	 */
	private Long serviceId;
	/**
	 * 服务的单价，基础价格
	 */
	private BigDecimal serviceAmount;
	/**
	 * 数量（order_type为1、2、3的时，表示天数。为4、5时，表示桌数）
	 */
	private Integer serviceNum;
	/**
	 * 数量（order_type为4、5时，天数）
	 */
	private Integer serviceNum2;
	/**
	 * 套餐内，每桌的基础人数（order_type为4、5的时候，这里需要填入）
	 */
	private Integer basePersonNum;
	/**
	 * 实际的，每桌的基础人数（order_type为4、5的时候，这里需要填入）
	 */
	private Integer truePersonNum;
	/**
	 * 每加1人，增加的价格（order_type为4、5的时候，这里需要填入）
	 */
	private BigDecimal addAmount;
	/**
	 * 师傅的id。其实就是被选择的师傅的cust_id，当order_type为1、2、4的时候，首次插入数据的时候，chef_id为0，当选定师傅之后，这里再回填师傅的id
	 */
	private Long chefId;
	/**
	 * 到店联系人（cust_address表里的）
	 */
	private String serviceNickName;
	/**
	 * 1：先生；2：女士（cust_address表里的）
	 */
	private Integer serviceGender;
	/**
	 * 联系电话（cust_address表里的）
	 */
	private String servicePhone;
	/**
	 * 详细地址（用户填写的信息）（cust_address表里的）
	 */
	private String serviceAddressDetail;
	/**
	 * 经度
	 */
	private BigDecimal longitudeAddr;
	/**
	 * 纬度
	 */
	private BigDecimal latitudeAddr;
	/**
	 * 城市id，下单的时候，用户当时选择的全局的cityId
	 */
	private Long cityId;
	/**
	 * 店铺类型的id（order_type为1、2的时候，这里需要填入）
	 */
	private Long shopTypeId;
	/**
	 * 擅长菜系的id的集合，用英文逗号隔开（order_type为1、2的时候，这里需要填入）
	 */
	private String caixiIds;
	/**
	 * 报价模式。1：商家报价；2：师傅报价；（order_type为1、2的时候，这里需要填入）
	 */
	private Integer baojiaType;
	/**
	 * 服务费用。（如果是商家报价填写在这里，如果是师傅报价，在另一张表中）
	 */
	private BigDecimal baojiaAmount;
	/**
	 * 是否需要开票。为0表示不需要开票
	 */
	private Long fapiaoApplyId;
	/**
	 * 实际需要支付的金额
	 */
	private BigDecimal payAmount;
	/**
	 * 已支付的金额
	 */
	private BigDecimal trueAmount;
	/**
	 * 临近时间，取消订单，已退的金额（服务前30分钟之外取消退还100%，服务前0-30分钟取消退还30%）
	 */
	private BigDecimal cancelAmount;
	/**
	 * 申请售后，通过后，退款的金额（申请通过，实际退了再填入此字段）
	 */
	private BigDecimal shouhouTuiAmount;
	/**
	 * 支付方式。1：支付宝，2：微信；3：余额
	 */
	private Integer payType;
	/**
	 * 订单状态（详看cust_service_order_state表）
	 */
	private Integer orderState;

	/**
	 * 申请售后前的状态
	 */
	private Integer orderStateInitial;
	/**
	 * 是否曾经申请过售后。1：申请过；2：没有申请过
	 */
	private Integer isShouhou;
	/**
	 * 订单备注
	 */
	private String orderRemark;
	/**
	 * 服务总时长
	 */
	private String totalServiceOrderTime;
	/**
	 * 服务开始时，打卡时间
	 */
	private Date startDakaTime;
	/**
	 * 服务开始时，打卡定位
	 */
	private String startDakaPosition;
	/**
	 * 服务开始时，打卡备注
	 */
	private String startDakaRemark;
	/**
	 * 服务开始时，照片1（至少1张）
	 */
	private String startDakaUrlOne;
	/**
	 * 服务开始时，照片2
	 */
	private String startDakaUrlTwo;
	/**
	 * 服务开始时，照片3
	 */
	private String startDakaUrlThree;
	/**
	 * 服务结束时，打卡时间
	 */
	private Date endDakaTime;
	/**
	 * 服务结束时，打卡定位
	 */
	private String endDakaPosition;
	/**
	 * 服务结束时，打卡备注
	 */
	private String endDakaRemark;
	/**
	 * 服务结束时，照片1（至少1张）
	 */
	private String endDakaUrlOne;
	/**
	 * 服务结束时，照片2
	 */
	private String endDakaUrlTwo;
	/**
	 * 服务结束时，照片3
	 */
	private String endDakaUrlThree;
	/**
	 * 平台抽成比例，8.5%就是850（下单时，从配置表中读取）
	 */
	private BigDecimal pingtaiBili;
	/**
	 * 分享赚的比例，这个金额是平台赚取的钱中抽成（等订单处于已完成状态，或者售后已通过的状态，再给分享人提成）
	 */
	private BigDecimal shareBili;
	/**
	 * 分享人的cust_id，谁分享就是谁的，没人分享就不管了
	 */
	private Long shareCustId;
	/**
	 * 支付流水号
	 */
	private Long payId;
	/**
	 * 支付时间
	 */
	private Date payTime;
	/**
	 * 取消的类型。1：系统取消；2：人为取消；
	 */
	private Integer cancelType;
	/**
	 * （头条/帮上推）到期时间（处于帮上推期间的订单，在师傅端的接单大厅中，会有加急标识）
	 */
	private Date bstUtilTime;
	/**
	 * 取消订单时间
	 */
	private Date cancelTime;
	/**
	 * 售后通过的时间
	 */
	private Date shouhouTime;
	/**
	 * 最后更新时间
	 */
	private Date updateTime;
	/**
	 * 下单时间
	 */
	private Date addTime;

}
